function Initialize(N, K, Ps, t, SimType)
    """
    Purpose: compute flow configuration given by
    Y.C. Zhou, G.W. Wei / Journal of Computational Physics 189 (2003) 159
    """

    if SimType == "InsentroicVortex"

        # based flow parameters
        β = 5.0; γ = 1.4
        x₀= 5.0; y₀= 0.0
        ρ = 1.0; u = 1.0
        v = 0.0; p = 1.0

        # position at t
        @inbounds xt = Ps[:,:,1] .- u*t
        @inbounds yt = Ps[:,:,2] .- v*t

        # distance from (x,y) to (x₀,y₀)
        @inbounds r = sqrt.((xt .- x₀).^2 + (yt .- y₀).^2)

        # perturbed density
        @inbounds u  = u .- β*exp.(1.0 .- r.^2).*(yt .- y₀)/(2*pi)
        @inbounds v  = v .+ β*exp.(1.0 .- r.^2).*(xt .- x₀)/(2*pi)

        @inbounds ρ = (1 .- ((γ-1)*β^2*exp.(2*(1 .- r.^2))/(16*γ*pi*pi))).^(1/(γ-1))
        @inbounds p = ρ.^γ

        # set initial solutions
        Q = zeros(Float64, N, K, 4)

        @inbounds Q[:,:,1] = ρ
        @inbounds Q[:,:,2] = ρ.*u
        @inbounds Q[:,:,3] = ρ.*v
        @inbounds Q[:,:,4] = p/(γ-1) + 0.5*ρ.*(u.^2 + v.^2)

        Q
    else
        print("TestCase is Not implement yet!\n")
        exit()
    end
end
